/**
 * Copyright (c) 2016-2019 九点科技 All rights reserved.
 *
 * http://www.9dyun.cn
 *
 * 版权所有，侵权必究！
 */
package com.dian.modules.inv.entity;

import com.dian.common.validator.group.AddGroup;
import com.dian.common.validator.group.UpdateGroup;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.math.BigDecimal;
import com.dian.common.entity.BaseEntity;
import java.util.Date;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
 * 库存表
 *
 * @author xiaolai
 * @email xiaolai@9dyun.cn
 * @date 2019-06-29 15:53:12
 */
@Data
@TableName("inv_goods_stock")
public class GoodsStockEntity extends BaseEntity {
    private static final long serialVersionUID = 1L;

        /**
        * id路径
        */
        @NotBlank(message="id路径不能为空",  groups ={AddGroup.class, UpdateGroup.class})
        @Length(max=200,  groups ={AddGroup.class, UpdateGroup.class}, message="id路径长度不能超过200个字符")
        private String classPathId;



        /**
        * 名称路径
        */
        @NotBlank(message="名称路径不能为空",  groups ={AddGroup.class, UpdateGroup.class})
        @Length(max=200,  groups ={AddGroup.class, UpdateGroup.class}, message="名称路径长度不能超过200个字符")
        private String classPathName;



        /**
        * 商品分类id;来源于base_class.id
        */
        @NotNull(message="商品分类id不能为空",groups = {AddGroup.class,UpdateGroup.class})
        private Long classId;



        /**
        * 商品分类名称;来源于base_class.class_name
        */
        @NotBlank(message="商品分类名称不能为空",  groups ={AddGroup.class, UpdateGroup.class})
        @Length(max=100,  groups ={AddGroup.class, UpdateGroup.class}, message="商品分类名称长度不能超过100个字符")
        private String className;



        /**
        * 商品id;来源于base_goods.id
        */
        @NotNull(message="商品id不能为空",groups = {AddGroup.class,UpdateGroup.class})
        private Long goodsId;



        /**
        * 商品编码;来源于base_goods.goods_code
        */
        @NotBlank(message="商品编码不能为空",  groups ={AddGroup.class, UpdateGroup.class})
        @Length(max=40,  groups ={AddGroup.class, UpdateGroup.class}, message="商品编码长度不能超过40个字符")
        private String goodsCode;



        /**
        * 商品名称;来源于base_goods.name
        */
        @NotBlank(message="商品名称不能为空",  groups ={AddGroup.class, UpdateGroup.class})
        @Length(max=200,  groups ={AddGroup.class, UpdateGroup.class}, message="商品名称长度不能超过200个字符")
        private String goodsName;



        /**
        * 商品型号;来源于base_goods.goods_model
        */
        @NotBlank(message="商品型号不能为空",  groups ={AddGroup.class, UpdateGroup.class})
        @Length(max=100,  groups ={AddGroup.class, UpdateGroup.class}, message="商品型号长度不能超过100个字符")
        private String goodsModel;



        /**
        * 商品规格;来源于base_goods.goods_space
        */
        @NotBlank(message="商品规格不能为空",  groups ={AddGroup.class, UpdateGroup.class})
        @Length(max=100,  groups ={AddGroup.class, UpdateGroup.class}, message="商品规格长度不能超过100个字符")
        private String goodsSpec;



        /**
        * 基础数量
        */
        @NotNull(message="基础数量不能为空",groups = {AddGroup.class,UpdateGroup.class})
        private BigDecimal baseNum;



        /**
        * 基础单位id;来源于base_uom.id
        */
        @NotNull(message="基础单位id不能为空",groups = {AddGroup.class,UpdateGroup.class})
        private Long baseUomId;



        /**
        * 基础单位;来源于base_uom.name_name
        */
        @NotBlank(message="基础单位不能为空",  groups ={AddGroup.class, UpdateGroup.class})
        @Length(max=40,  groups ={AddGroup.class, UpdateGroup.class}, message="基础单位长度不能超过40个字符")
        private String baseUomName;



        /**
        * 库存数量
        */
        @NotNull(message="库存数量不能为空",groups = {AddGroup.class,UpdateGroup.class})
        private BigDecimal qtyNum;



        /**
        * 计量单位id;来源于base_uom.id
        */
        @NotNull(message="计量单位id不能为空",groups = {AddGroup.class,UpdateGroup.class})
        private Long qtyUomId;



        /**
        * 计量单位;来源于base_uom.name_name
        */
        @NotBlank(message="计量单位不能为空",  groups ={AddGroup.class, UpdateGroup.class})
        @Length(max=40,  groups ={AddGroup.class, UpdateGroup.class}, message="计量单位长度不能超过40个字符")
        private String qtyUomName;



        /**
        * 辅助数量
        */
        @NotNull(message="辅助数量不能为空",groups = {AddGroup.class,UpdateGroup.class})
        private BigDecimal auxNum;



        /**
        * 计量单位id;来源于base_uom.id
        */
        @NotNull(message="计量单位id不能为空",groups = {AddGroup.class,UpdateGroup.class})
        private Long auxUomId;



        /**
        * 计量单位;来源于base_uom.name_name
        */
        @NotBlank(message="计量单位不能为空",  groups ={AddGroup.class, UpdateGroup.class})
        @Length(max=40,  groups ={AddGroup.class, UpdateGroup.class}, message="计量单位长度不能超过40个字符")
        private String auxUomName;



        /**
        * 可用基础数量
        */
        @NotNull(message="可用基础数量不能为空",groups = {AddGroup.class,UpdateGroup.class})
        private BigDecimal avaBaseNum;



        /**
        * 可用库存数量
        */
        @NotNull(message="可用库存数量不能为空",groups = {AddGroup.class,UpdateGroup.class})
        private BigDecimal avaQtyNum;



        /**
        * 可用辅助数量
        */
        @NotNull(message="可用辅助数量不能为空",groups = {AddGroup.class,UpdateGroup.class})
        private BigDecimal avaAuxNum;



        /**
        * 色号
        */
        @Length(max=20,  groups ={AddGroup.class, UpdateGroup.class}, message="色号长度不能超过20个字符")
        private String colorNumber;



        /**
        * 商品等级:1-优等品-excell;2-一等品-first
        */
        @Length(max=20,  groups ={AddGroup.class, UpdateGroup.class}, message="商品等级长度不能超过20个字符")
        private String itemGrade;



        /**
        * 仓库Id;来源于Base_Warehouse.id
        */
        @NotNull(message="仓库Id不能为空",groups = {AddGroup.class,UpdateGroup.class})
        private Long warehouseId;



        /**
        * 仓库编码;来源于Base_Warehouse.Warehouse_Code
        */
        @NotBlank(message="仓库编码不能为空",  groups ={AddGroup.class, UpdateGroup.class})
        @Length(max=20,  groups ={AddGroup.class, UpdateGroup.class}, message="仓库编码长度不能超过20个字符")
        private String warehouseCode;



        /**
        * 仓库名称;来源于Base_Warehouse.Warehouse_Name
        */
        @NotBlank(message="仓库名称不能为空",  groups ={AddGroup.class, UpdateGroup.class})
        @Length(max=40,  groups ={AddGroup.class, UpdateGroup.class}, message="仓库名称长度不能超过40个字符")
        private String warehouseName;

        /**
         * 换算单位1
         */
        private BigDecimal converUnit1;
        /**
         * 换算单位2
         */
        private BigDecimal converUnit2;

        /**
        * 版本号
        */
        private Long version;

        /**
         * 包装码
         */
        private String cfpackCode;
        /**
         * 缺陷
         */
        private  String fault;
        /**
         * 生产调度号schedule_no
         */
        private  String scheduleNo;
        /**
         * 批次flot
         */
        private  String flot;
        /**
         * 尺寸item_size
         */
        private  String itemSize;
        /**
         * 外包装码名称boxing_name
         */
        private  String boxingName;






}
